package Fisica.Deposito;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import Fisica.Conexion;
import Logica.Cooperativa.Deposito;
import Logica.Cooperativa.Pedido;
import Logica.Venta.Articulo;

public class FisicaFactura {
	/*
	 * INSERT:
		INSERT INTO fac_recepcion_capturador (fecha,proveedor_padron,nota_pedido,art_codigo,art_barras,art_descripcion,art_cantidad,operador,numero_factura,actualizado,fecha_factura,colector,comprobante_tipo,punto_venta) 
		VALUES ('2014/08/22', 4436, 1000, 14466, 7794000597600, 'CALDO KNORR', 10, 3, 3322554466, 'N', '2014/08/22', 0, 12, 00001);
		
		UPDATE: 
		UPDATE fac_recepcion_capturador SET art_cantidad = (art_cantidad + 6), fecha = '2014/09/27' WHERE art_codigo = 14466;
		
		*/
	
	public String INSERTARTICULO; 
	public String UPDATEARTICULO;		
			
	
	public static List<Deposito> lisDeposito (){
		@SuppressWarnings({ "unchecked", "rawtypes" })
		List<Deposito> lista = new ArrayList();	
		Deposito d1, d2;
		d1 = new Deposito(0, "Minorista");
		d2 = new Deposito(1, "Mayorista");
		lista.add(d1);
		lista.add(d2);		
		return lista;		
	}
	
	
//	public static void insertarRecepcion(Recepcion a){
//		String SELECT = "select * from fac_recepcion_capturador where proveedor_padron = "+a.getPadronCodigo()+" and art_barras = "+a.getCodBarra()+" and numero_factura = "+a.getNumeroFactura()+" and colector = "+a.getColector()+";";
//		
//		/*INSERT INTO fac_recepcion_capturador (fecha,proveedor_padron,nota_pedido,art_codigo,art_barras,art_descripcion,art_cantidad,operador,numero_factura,actualizado,fecha_factura,colector,comprobante_tipo,punto_venta) 
//		VALUES ('2014/08/22', 4436, 1000, 14466, 7794000597600, 'CALDO KNORR', 10, 3, 3322554466, 'N', '2014/08/22', 0, 12, 00001);*/
//		String INSERTAR = "INSERT INTO fac_recepcion_capturador "
//	+ "(fecha,proveedor_padron,nota_pedido,art_codigo,art_barras,art_descripcion,art_cantidad,operador,numero_factura,actualizado,fecha_factura,colector,comprobante_tipo,punto_venta) "
//	+ "VALUES ('"+a.getFecha()+"', "+a.getPadronCodigo()+", "+a.getNotaPedido()+", "+a.getCodigoInterno()+", "+a.getCodBarra()+", '"+a.getDescripcion()+"', "+a.getCompra()+", '"+a.getOperadorCodigo()+"', "+a.getNumeroFactura()+", '"+a.getActualzado()+"', '"+a.getFechaFactura()+"', "+a.getColector()+", "+a.getComprobanteTipo()+", "+a.getPtoVenta()+");";
//		
//		/*UPDATE fac_recepcion_capturador SET art_cantidad = (art_cantidad + 6), fecha = '2014/09/27' WHERE art_codigo = 14466;*/
//		String UPDATE = "UPDATE fac_recepcion_capturador SET art_cantidad = (art_cantidad + "+a.getCompra()+"), fecha = '"+a.getFecha()+"' "
//				+ "WHERE proveedor_padron = "+a.getPadronCodigo()+" and numero_factura = "+a.getNumeroFactura()+" "
//				+ "and art_barras = "+a.getCodBarra()+" and colector = "+a.getColector()+";";
//		try {
//			System.out.println("cod Interno: "+a.getCodigoInterno());
//			System.out.println("descripcion: "+a.getDescripcion());
//			System.out.println("compra: "+a.getCompra());
//			System.out.println("deposito: "+a.getColector());
//			System.out.println("usuario: "+a.getOperadorCodigo());
//			
//			PreparedStatement stSelect = Conexion.getConexion().prepareStatement(SELECT);	
//			ResultSet rsSelect = stSelect.executeQuery();		
//			
//			boolean existencia =  rsSelect.next();
//			PreparedStatement st; 
//
//			if (!existencia){
//				st = Conexion.getConexion().prepareStatement(INSERTAR);	
//				st.executeUpdate();	
//				System.out.println("inserto: "+a.getDescripcion());
//			}else{
//				st = Conexion.getConexion().prepareStatement(UPDATE);	
//				st.executeUpdate();	
//				System.out.println("actualizo: "+a.getDescripcion());
//			}
//			
//		}catch(Exception e){
//			System.out.println("exception al intentar insertar: "+a.getDescripcion());
//			e.printStackTrace();
//		}
//			
//	}
	
//	public static Recepcion buscaArtCargado(String barra){
//		String SELECT = "select * from fac_recepcion_capturador where art_barras = "+barra+";";
//		
//		
//		try {
//			PreparedStatement stSelect = Conexion.getConexion().prepareStatement(SELECT);	
//			ResultSet rsSelect = stSelect.executeQuery();		
//			
//			boolean existencia =  rsSelect.next();
//			PreparedStatement st; 
//
//			if (existencia){
//				Recepcion a = new Recepcion();
//				a.setCodBarra(rsSelect.getString("art_barras"));
//				a.setCodigoInterno(rsSelect.getString("art_codigo"));
//				a.setDescripcion(rsSelect.getString("art_descripcion"));
//				return a;
//			}else{
//				return new Recepcion();
//			}
//			
//		}catch(Exception e){			
//			e.printStackTrace();
//		}
//		return null;
//			
//	}
	
	public static List<Pedido> listarNotasPedido(int padron_proveedor){
		List<Pedido> lista = new ArrayList();	
		
		String sql = "select n_codigo, n_proveedor, count(*)"
				+ " from fac_nota_pedido";
		if (padron_proveedor != -1){
			sql += " where n_proveedor = "+padron_proveedor; 
		}
		 
		sql += " group by n_codigo, n_proveedor order by n_codigo asc;";
		
		try {
			PreparedStatement st = Conexion.getConexion().prepareStatement(sql);	
			ResultSet rs = st.executeQuery();			
						
			Pedido p;
			while (rs.next()){
				p = new Pedido();
				p.setNotaPedido(rs.getInt("n_codigo"));
				p.setProveedorPadron(rs.getInt("n_proveedor"));
				p.setCantidadPedida(rs.getInt(3));
				
				lista.add(p);				
			}
			return lista;
		} catch (SQLException e) {
			System.out.print("ERROR EN LA RECUPERACION DE DATOS DE LA BASE");
			e.printStackTrace();
		}
		return lista;
		
	}
	
	

	public static void main(String[] args) {
		FisicaFactura p = new FisicaFactura();
//		p.lisOperador();


	}

}
